package com.bai.easyui.Dao;

import java.util.List;

/**
 * Created by Admin on 2/9 0009.
 */
public interface BaseDao<T> {
    /**
     * 执行 update 的操作,包括insert ,update ,delete ;
     * @param sql: 待执行的语句
     * @param args: 填充占位符的可变参数
     */
    void update(String sql, Object... args);

    /**
     * 执行单条记录的查询,返回与记录对应的类的一个对象
     * @param sql: 待执行的语句
     * @param args: 填充占位符的可变参数
     * @return
     */
    T get(String sql, Object... args);

    /**
     * 执行多条记录的查询操作,返回对应的一个类的List
     * @param sql: 待执行的语句
     * @param args: 填充占位符的可变参数
     * @return
     */
    List<T> getList(String sql, Object... args);

    /**
     * 执行一个属性或值的查询操作,例如查询某一条记录的一个字段,
     * 或者某个统计信息,返回要查询的值
     * @param sql: 待执行语句
     * @param args: 填充占位符的可变参数
     * @param <E>
     * @return:
     */
    <E> E getForValue(String sql, Object... args);
}
